
// Boost Includes ==============================================================
#include <boost/python.hpp>
#include <boost/cstdint.hpp>

// Includes ====================================================================
#include <OpenSG/OSGClusterWindow.h>
#include <OpenSG/OSGClusterWindowBase.h>
#include <OpenSG/OSGRenderAction.h>
#include <OsgPtrHelpers.h>

// Using =======================================================================
using namespace boost::python;

// Declarations ================================================================
namespace  {

BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(osg_ClusterWindow_dump_overloads_0_2, dump, 0, 2)

BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(osg_ClusterWindow_render_overloads_0_1, render, 0, 1)

BOOST_PYTHON_MEMBER_FUNCTION_OVERLOADS(osg_ClusterWindow_renderAllViewports_overloads_0_1, renderAllViewports, 0, 1)

/*
struct osg_ClusterWindow_AsyncCancel_Wrapper: osg::ClusterWindow::AsyncCancel
{
    osg_ClusterWindow_AsyncCancel_Wrapper(PyObject* py_self_, const osg::ClusterWindow::AsyncCancel& p0):
        osg::ClusterWindow::AsyncCancel(p0), py_self(py_self_) {}

    osg_ClusterWindow_AsyncCancel_Wrapper(PyObject* py_self_):
        osg::ClusterWindow::AsyncCancel(), py_self(py_self_) {}

    const osg::Char8* what() const throw() {
        return call_method< const osg::Char8* >(py_self, "what");
    }

    const osg::Char8* default_what() const {
        return osg::Exception::what();
    }

    const char* what() const throw() {
        return call_method< const char* >(py_self, "what");
    }

    const char* default_what() const {
        return std::exception::what();
    }

    PyObject* py_self;
};
*/



}// namespace 


// Module ======================================================================
void Export_src_pyste_gen_ClusterWindow()
{
    scope* osg_ClusterWindowBase_scope = new scope(
    class_< osg::ClusterWindowBase, bases< osg::Window > , boost::noncopyable >("ClusterWindowBase", no_init)
//        .def_readonly("ServersFieldMask", &osg::ClusterWindowBase::ServersFieldMask)
//        .def_readonly("ConnectionTypeFieldMask", &osg::ClusterWindowBase::ConnectionTypeFieldMask)
//        .def_readonly("ConnectionInterfaceFieldMask", &osg::ClusterWindowBase::ConnectionInterfaceFieldMask)
//        .def_readonly("ConnectionDestinationFieldMask", &osg::ClusterWindowBase::ConnectionDestinationFieldMask)
//        .def_readonly("ConnectionParamsFieldMask", &osg::ClusterWindowBase::ConnectionParamsFieldMask)
//        .def_readonly("ServicePortFieldMask", &osg::ClusterWindowBase::ServicePortFieldMask)
//        .def_readonly("ServiceAddressFieldMask", &osg::ClusterWindowBase::ServiceAddressFieldMask)
//        .def_readonly("ClientWindowFieldMask", &osg::ClusterWindowBase::ClientWindowFieldMask)
//        .def_readonly("InterleaveFieldMask", &osg::ClusterWindowBase::InterleaveFieldMask)
//        .def_readonly("FrameCountFieldMask", &osg::ClusterWindowBase::FrameCountFieldMask)
//        .def_readonly("ComposerFieldMask", &osg::ClusterWindowBase::ComposerFieldMask)
//        .def_readonly("AutostartFieldMask", &osg::ClusterWindowBase::AutostartFieldMask)
//        .def_readonly("CalibrationFieldMask", &osg::ClusterWindowBase::CalibrationFieldMask)
//        .def_readonly("MTInfluenceMask", &osg::ClusterWindowBase::MTInfluenceMask)
        .def("getClassType", &osg::ClusterWindowBase::getClassType, return_internal_reference< 1 >())
        .def("getClassTypeId", &osg::ClusterWindowBase::getClassTypeId)
        .def("getType", (osg::FieldContainerType& (osg::ClusterWindowBase::*)() )&osg::ClusterWindowBase::getType, return_internal_reference< 1 >())
        .def("getType", (const osg::FieldContainerType& (osg::ClusterWindowBase::*)() const)&osg::ClusterWindowBase::getType, return_internal_reference< 1 >())
        .def("getContainerSize", &osg::ClusterWindowBase::getContainerSize)
        //.def("getConnectionType", (std::string& (osg::ClusterWindowBase::*)() )&osg::ClusterWindowBase::getConnectionType, return_value_policy< copy_const_reference >())
        .def("getConnectionType", (const std::string& (osg::ClusterWindowBase::*)() const)&osg::ClusterWindowBase::getConnectionType, return_value_policy< copy_const_reference >())
        //.def("getConnectionInterface", (std::string& (osg::ClusterWindowBase::*)() )&osg::ClusterWindowBase::getConnectionInterface, return_value_policy< copy_const_reference >())
        .def("getConnectionInterface", (const std::string& (osg::ClusterWindowBase::*)() const)&osg::ClusterWindowBase::getConnectionInterface, return_value_policy< copy_const_reference >())
        //.def("getConnectionDestination", (std::string& (osg::ClusterWindowBase::*)() )&osg::ClusterWindowBase::getConnectionDestination, return_value_policy< copy_const_reference >())
        .def("getConnectionDestination", (const std::string& (osg::ClusterWindowBase::*)() const)&osg::ClusterWindowBase::getConnectionDestination, return_value_policy< copy_const_reference >())
        //.def("getConnectionParams", (std::string& (osg::ClusterWindowBase::*)() )&osg::ClusterWindowBase::getConnectionParams, return_value_policy< copy_const_reference >())
        .def("getConnectionParams", (const std::string& (osg::ClusterWindowBase::*)() const)&osg::ClusterWindowBase::getConnectionParams, return_value_policy< copy_const_reference >())
        //.def("getServicePort", (osg::UInt32& (osg::ClusterWindowBase::*)() )&osg::ClusterWindowBase::getServicePort, return_value_policy< copy_const_reference >())
        .def("getServicePort", (const osg::UInt32& (osg::ClusterWindowBase::*)() const)&osg::ClusterWindowBase::getServicePort, return_value_policy< copy_const_reference >())
        //.def("getServiceAddress", (std::string& (osg::ClusterWindowBase::*)() )&osg::ClusterWindowBase::getServiceAddress, return_value_policy< copy_const_reference >())
        .def("getServiceAddress", (const std::string& (osg::ClusterWindowBase::*)() const)&osg::ClusterWindowBase::getServiceAddress, return_value_policy< copy_const_reference >())
        //.def("getClientWindow", (osg::WindowPtr& (osg::ClusterWindowBase::*)() )&osg::ClusterWindowBase::getClientWindow, return_value_policy< copy_const_reference >())
        .def("getClientWindow", (const osg::WindowPtr& (osg::ClusterWindowBase::*)() const)&osg::ClusterWindowBase::getClientWindow, return_value_policy< copy_const_reference >())
        //.def("getInterleave", (osg::UInt32& (osg::ClusterWindowBase::*)() )&osg::ClusterWindowBase::getInterleave, return_value_policy< copy_const_reference >())
        .def("getInterleave", (const osg::UInt32& (osg::ClusterWindowBase::*)() const)&osg::ClusterWindowBase::getInterleave, return_value_policy< copy_const_reference >())
        //.def("getFrameCount", (osg::UInt32& (osg::ClusterWindowBase::*)() )&osg::ClusterWindowBase::getFrameCount, return_value_policy< copy_const_reference >())
        .def("getFrameCount", (const osg::UInt32& (osg::ClusterWindowBase::*)() const)&osg::ClusterWindowBase::getFrameCount, return_value_policy< copy_const_reference >())
        //.def("getComposer", (osg::ImageComposerPtr& (osg::ClusterWindowBase::*)() )&osg::ClusterWindowBase::getComposer, return_value_policy< copy_const_reference >())
        .def("getComposer", (const osg::ImageComposerPtr& (osg::ClusterWindowBase::*)() const)&osg::ClusterWindowBase::getComposer, return_value_policy< copy_const_reference >())
        .def("getServers", (std::string& (osg::ClusterWindowBase::*)(const osg::UInt32) )&osg::ClusterWindowBase::getServers, return_value_policy< copy_non_const_reference >())
        //.def("getServers", (osg::MFString& (osg::ClusterWindowBase::*)() )&osg::ClusterWindowBase::getServers, return_value_policy< copy_const_reference >())
        .def("getServers", (const osg::MFString& (osg::ClusterWindowBase::*)() const)&osg::ClusterWindowBase::getServers, return_value_policy< copy_const_reference >())
        .def("getAutostart", (std::string& (osg::ClusterWindowBase::*)(const osg::UInt32) )&osg::ClusterWindowBase::getAutostart, return_value_policy< copy_non_const_reference >())
        //.def("getAutostart", (osg::MFString& (osg::ClusterWindowBase::*)() )&osg::ClusterWindowBase::getAutostart, return_value_policy< copy_const_reference >())
        .def("getAutostart", (const osg::MFString& (osg::ClusterWindowBase::*)() const)&osg::ClusterWindowBase::getAutostart, return_value_policy< copy_const_reference >())
        .def("getCalibration", (osg::DisplayCalibrationPtr& (osg::ClusterWindowBase::*)(const osg::UInt32) )&osg::ClusterWindowBase::getCalibration, return_value_policy< copy_non_const_reference >())
        //.def("getCalibration", (osg::MFDisplayCalibrationPtr& (osg::ClusterWindowBase::*)() )&osg::ClusterWindowBase::getCalibration, return_value_policy< copy_const_reference >())
        .def("getCalibration", (const osg::MFDisplayCalibrationPtr& (osg::ClusterWindowBase::*)() const)&osg::ClusterWindowBase::getCalibration, return_value_policy< copy_const_reference >())
        .def("setConnectionType", &osg::ClusterWindowBase::setConnectionType)
        .def("setConnectionInterface", &osg::ClusterWindowBase::setConnectionInterface)
        .def("setConnectionDestination", &osg::ClusterWindowBase::setConnectionDestination)
        .def("setConnectionParams", &osg::ClusterWindowBase::setConnectionParams)
        .def("setServicePort", &osg::ClusterWindowBase::setServicePort)
        .def("setServiceAddress", &osg::ClusterWindowBase::setServiceAddress)
        .def("setClientWindow", &osg::ClusterWindowBase::setClientWindow)
        .def("setInterleave", &osg::ClusterWindowBase::setInterleave)
        .def("setFrameCount", &osg::ClusterWindowBase::setFrameCount)
        .def("setComposer", &osg::ClusterWindowBase::setComposer)
        .def("getBinSize", &osg::ClusterWindowBase::getBinSize)
        .def("copyToBin", &osg::ClusterWindowBase::copyToBin)
        .def("copyFromBin", &osg::ClusterWindowBase::copyFromBin)
        .def("create", &osg::ClusterWindowBase::create)
        .def("createEmpty", &osg::ClusterWindowBase::createEmpty)
        .def("shallowCopy", &osg::ClusterWindowBase::shallowCopy)
        .staticmethod("getClassType")
        .staticmethod("create")
        .staticmethod("createEmpty")
        .staticmethod("getClassTypeId")
    );

    scope().attr("InterleaveFieldId") = (int)osg::ClusterWindowBase::InterleaveFieldId;
    scope().attr("AutostartFieldId") = (int)osg::ClusterWindowBase::AutostartFieldId;
    scope().attr("ServiceAddressFieldId") = (int)osg::ClusterWindowBase::ServiceAddressFieldId;
    scope().attr("NextFieldId") = (int)osg::ClusterWindowBase::NextFieldId;
    scope().attr("ConnectionInterfaceFieldId") = (int)osg::ClusterWindowBase::ConnectionInterfaceFieldId;
    scope().attr("ServicePortFieldId") = (int)osg::ClusterWindowBase::ServicePortFieldId;
    scope().attr("ConnectionTypeFieldId") = (int)osg::ClusterWindowBase::ConnectionTypeFieldId;
    scope().attr("ClientWindowFieldId") = (int)osg::ClusterWindowBase::ClientWindowFieldId;
    scope().attr("ComposerFieldId") = (int)osg::ClusterWindowBase::ComposerFieldId;
    scope().attr("ConnectionParamsFieldId") = (int)osg::ClusterWindowBase::ConnectionParamsFieldId;
    scope().attr("ConnectionDestinationFieldId") = (int)osg::ClusterWindowBase::ConnectionDestinationFieldId;
    scope().attr("ServersFieldId") = (int)osg::ClusterWindowBase::ServersFieldId;
    scope().attr("FrameCountFieldId") = (int)osg::ClusterWindowBase::FrameCountFieldId;
    scope().attr("CalibrationFieldId") = (int)osg::ClusterWindowBase::CalibrationFieldId;

    delete osg_ClusterWindowBase_scope;

    scope* osg_ClusterWindow_scope = new scope(
    class_< osg::ClusterWindow, bases< osg::ClusterWindowBase > , boost::noncopyable, osg::ClusterWindowRefPtr >("ClusterWindow", no_init)
        .def("changed", &osg::ClusterWindow::changed)
        .def("dump", &osg::ClusterWindow::dump, osg_ClusterWindow_dump_overloads_0_2())
        //.def("getFunctionByName", &osg::ClusterWindow::getFunctionByName, return_value_policy< copy_const_reference >())
        .def("activate", &osg::ClusterWindow::activate)
        .def("deactivate", &osg::ClusterWindow::deactivate)
        .def("swap", &osg::ClusterWindow::swap)
        .def("init", &osg::ClusterWindow::init)
        .def("render", &osg::ClusterWindow::render, osg_ClusterWindow_render_overloads_0_1())
        .def("renderAllViewports", &osg::ClusterWindow::renderAllViewports, osg_ClusterWindow_renderAllViewports_overloads_0_1())
        .def("frameInit", &osg::ClusterWindow::frameInit)
        .def("frameExit", &osg::ClusterWindow::frameExit)
        //.def("initAsync", &osg::ClusterWindow::initAsync)
        //.def("setConnectionCB", &osg::ClusterWindow::setConnectionCB)
        //.def("getNetwork", &osg::ClusterWindow::getNetwork, return_value_policy< copy_const_reference >())
        //.def("getStatistics", &osg::ClusterWindow::getStatistics, return_value_policy< copy_const_reference >())
        .def("setStatistics", &osg::ClusterWindow::setStatistics)
        .def("loadCalibration", &osg::ClusterWindow::loadCalibration)
        .def("saveCalibration", &osg::ClusterWindow::saveCalibration)
    );

/*
    class_< osg::ClusterWindow::AsyncCancel, bases< std::exception > >("AsyncCancel", init<  >())
        .def(init< const osg::ClusterWindow::AsyncCancel& >())
        //.def("what", (const osg::Char8* (osg::Exception::*)() const throw())&osg::Exception::what, (const osg::Char8* (osg_ClusterWindow_AsyncCancel_Wrapper::*)() const)&osg_ClusterWindow_AsyncCancel_Wrapper::default_what)
        //.def("what", (const char* (std::exception::*)() const throw())&std::exception::what, (const char* (osg_ClusterWindow_AsyncCancel_Wrapper::*)() const)&osg_ClusterWindow_AsyncCancel_Wrapper::default_what)
    ;
*/
    delete osg_ClusterWindow_scope;


    register_ptr_to_python<osg::ClusterWindowPtr>();
    implicitly_convertible<osg::ClusterWindowRefPtr, osg::ClusterWindowPtr>();
    implicitly_convertible<osg::ClusterWindowPtr, osg::WindowPtr>();
    
    def("RefPtr", &pyopensg::ToRefPtr<osg::ClusterWindowPtr>);
    def("FCPtr", &pyopensg::ToFcPtr<osg::ClusterWindowPtr>);
}

